package com.zhijian.medical.entity.vo.request;

import cn.hutool.json.JSONUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * 提交试卷的请求vo
 *
 * @author HCG
 * @version 1.0
 * @date 2022/1/5
 */
@Data
@Api(tags = "提交试卷的请求vo")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ExamSubmitVo implements Serializable {
    private static final long serialVersionUID = -7453337233933280058L;

    /**
     * 试卷id
     */
    @ApiModelProperty("试卷id")
    @NotNull(message = "试卷id不能为空")
    private Long id;

    /**
     * 答案内容
     */
    @ApiModelProperty("答案内容")
    private List<SelectVo> selectContent;

    /**
     * 人员id
     */
    @ApiModelProperty(value = "人员id", hidden = true)
    private Long userId;

    /**
     * 学习id
     */
    @ApiModelProperty("学习id")
    @NotNull(message = "学习id不能为空")
    private Long studyId;

    @Override
    public String toString() {
        return JSONUtil.toJsonStr(this);
    }

    @Data
    @Api(tags = "提交试卷的选择答案vo")
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class SelectVo implements Serializable {

        private static final long serialVersionUID = -4920606470531888335L;

        /**
         * 题目id
         */
        @ApiModelProperty("题目id")
        private Long questionId;

        /**
         * 选择的答案，单选题的时候，为答案的id；多选题的时候，为答案的id集合，以英文逗号隔开；填空题或者简答题的时候，为答案内容
         */
        @ApiModelProperty("选择的答案，单选题的时候，为答案的id；多选题的时候，为答案的id集合，以英文逗号隔开；填空题或者简答题的时候，为答案内容")
        private String selectAnswer;

        @Override
        public String toString() {
            return JSONUtil.toJsonStr(this);
        }
    }


}
